package com.base.common.edu.entity;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.HashSet;
import java.util.Set;

/**
 * @Author Maple.Chen
 * @Description 学生定义实体
 * @Date 16:33 2021/1/20
 **/
@Data
@ApiModel(description = "学生信息实体")
@JsonIgnoreProperties(value = {"handler"})
public class Student implements Serializable {

    private static final long serialVersionUID = -1712031979864332191L;
    @ApiModelProperty( value = "学生记录ID")
    private String stuID;
    @ApiModelProperty( value = "学号")
    private String sno;
    @ApiModelProperty( value = "学生姓名")
    private String stuName;
    @ApiModelProperty( value = "性别")
    private Integer sex;
    @ApiModelProperty( value = "登录口令")
    private String password;
    @ApiModelProperty( value = "身份证号")
    private String idCard;
    @ApiModelProperty( value = "现住址：省份")
    private String provinceId;
    @ApiModelProperty( value = "现住址：城市")
    private String cityId;
    @ApiModelProperty( value = "现住址：区")
    private String areaId;
    @ApiModelProperty( value = "现住址：街道信息")
    private String streetInfo;
    @ApiModelProperty( value = "学生邮箱")
    private String email;
    @ApiModelProperty( value = "班级对象Object")
    private EduClass eduClass;
    @ApiModelProperty( value = "用户状态（-1：失效[Invalid]，0：未激活[Inactive]，1：已激活[Activated]）")
    private Integer activateStatus;
    @ApiModelProperty( value = "头像图路径")
    private String imgPath;
    @ApiModelProperty( value = "学生账户")
    private StuAccount stuAccount;
    @ApiModelProperty( value = "学生账户变动明细实体")
    private Set<StuAccountLog> stuAccountLog = new HashSet<StuAccountLog>();
    @ApiModelProperty( value = "学生所修课程成绩")
    private Set<StuScore> stuScores = new HashSet<StuScore>();
    @ApiModelProperty( value = "学生家庭联系人信息集合")
    private Set<StuFamilyContact> stuFamilyContacts = new HashSet<StuFamilyContact>();
    @ApiModelProperty( value = "学生个人联系号码信息集合")
    private Set<StuContact> stuContacts = new HashSet<StuContact>();
    // 学生评价、活动课程报名记录、请假记录、奖学金记录和订购教材记录这些Set，在学生实体中不做映射

}
